Due to the complexity of integrated circuit devices, software tools are typically employed in the design process for an integrated circuit device. The software tools utilize design cells, representing functional models of logic elements of the integrated circuit design, to model the behavior of a particular design. Such design cells can represent sequential elements, combinational elements, and combinations thereof. It is sometimes desirable for the design cell to represent timing information, such as setup and hold time information, for the associated logic element. Such timing information can be helpful in determining the maximum operating frequency for the integrated circuit design. Accordingly, it is typically desirable to characterize the setup and hold time for a design cell.
However, conventional methods of characterizing setup and hold times can be undesirably time consuming. For example, one such characterization method involves repeatedly executing a number of binary searches. In particular, the characterization method requires selecting an initial hold or setup time (referred to as the constraint time) and testing the design cell by applying input data to the cell having the constraint time. A binary search is performed by iteratively dividing the setup or hold time (referred to as the tested time) of the input data in half and applying the input data to the design cell until the minimum tested time that allows the design cell to perform according to specifications is determined. The constraint time is then adjusted and the minimum tested time for the adjusted constraint time is determined using a binary search. The derivative of the line defined by the two determined constraint and tested times is determined, and, if it is above a specified threshold, the constraint time is again adjusted and a binary search performed to determine the associated minimum tested time. The process is repeated until the derivative for the curve defined by the determined points is below the specified threshold. However, this method can take an undesirable amount of time, as each binary search can require numerous iterations. Accordingly, an improved method of characterizing the setup and hold time of a device would be useful.